﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AMS.Chess.CommonLayer
{
    public abstract class AChessBoard
    {
        // responsible for keeping track of pieces
        // responsible for moving pieces; if pieces move themselves, they call this
        protected IChessPieceFactory _pieceFactory;

        // tells pieces where they can move to
        public abstract bool IsValidPosition(ABoardPosition position);
        public abstract bool ContainsPiece(ABoardPosition position);
        public abstract void ChangePiecePosition(AChessPiece piece, ABoardPosition startPosition, ABoardPosition endPosition);
        public abstract AChessPiece GetPiece(ABoardPosition position);
    }
}
